home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / AIncludes / StringCompare.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  10.7 KB  |  398 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        StringCompare.a
  3. ;
  4. ;    Contains:    Public interfaces for String Comparison and related operations
  5. ;
  6. ;    Version:    Technology:    Mac OS 8
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__STRINGCOMPARE__') = 'UNDEFINED' THEN
  18. __STRINGCOMPARE__ SET 1
  19.  
  20.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  21.     include 'MacTypes.a'
  22.     ENDIF
  23.     IF &TYPE('__TEXTCOMMON__') = 'UNDEFINED' THEN
  24.     include 'TextCommon.a'
  25.     ENDIF
  26.     IF &TYPE('__SCRIPT__') = 'UNDEFINED' THEN
  27.     include 'Script.a'
  28.     ENDIF
  29.  
  30. ;
  31. ;    Here are the current System 7 routine names and the translations to the older forms.
  32. ;    Please use the newer forms in all new code and migrate the older names out of existing
  33. ;    code as maintenance permits.
  34. ;    
  35. ;    NEW NAME                    OLD NAME                    OBSOLETE FORM (no handle)
  36. ;    
  37. ;    CompareString (Str255)        IUCompPString (hp only)        IUCompString (hp only)
  38. ;    CompareText (ptr/len)        IUMagPString                IUMagString
  39. ;    IdenticalString (Str255)    IUEqualPString (hp only)    IUEqualString  (hp only)
  40. ;    IdenticalText (ptr/len)        IUMagIDPString                IUMagIDString
  41. ;    LanguageOrder                IULangOrder
  42. ;    ScriptOrder                    IUScriptOrder
  43. ;    StringOrder (Str255)        IUStringOrder (hp only)
  44. ;    TextOrder (ptr/len)            IUTextOrder
  45. ;
  46. ;    RelString
  47. ;    CmpString (a only)                    
  48. ;    EqualString (hp only)
  49. ;    
  50. ;    ReplaceText
  51. ;
  52. ;
  53.  
  54.  
  55.  
  56.                                                             ; Special language code values for Language Order
  57. systemCurLang                    EQU        -2                    ; current (itlbLang) lang for system script
  58. systemDefLang                    EQU        -3                    ; default (table) lang for system script
  59. currentCurLang                    EQU        -4                    ; current (itlbLang) lang for current script
  60. currentDefLang                    EQU        -5                    ; default lang for current script
  61. scriptCurLang                    EQU        -6                    ; current (itlbLang) lang for specified script
  62. scriptDefLang                    EQU        -7                    ; default language for a specified script
  63. ;  obsolete names
  64.  
  65. iuSystemCurLang                    EQU        -2
  66. iuSystemDefLang                    EQU        -3
  67. iuCurrentCurLang                EQU        -4
  68. iuCurrentDefLang                EQU        -5
  69. iuScriptCurLang                    EQU        -6
  70. iuScriptDefLang                    EQU        -7
  71.  
  72.  
  73. ;   The following functions are old names, but are required for System 7 PowerPC builds
  74. ;   because InterfaceLib exports these names, instead of the new ones.
  75.  
  76.  
  77.  
  78. ;
  79. ; pascal short IUMagPString(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  80. ;
  81.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  82.         Macro
  83.         _IUMagPString
  84.             move.w              #$001A,-(sp)
  85.             dc.w                $A9ED
  86.         EndM
  87.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  88.         IMPORT_CFM_FUNCTION IUMagPString
  89.     ENDIF
  90.  
  91. ;
  92. ; pascal short IUMagIDPString(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  93. ;
  94.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  95.         Macro
  96.         _IUMagIDPString
  97.             move.w              #$001C,-(sp)
  98.             dc.w                $A9ED
  99.         EndM
  100.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  101.         IMPORT_CFM_FUNCTION IUMagIDPString
  102.     ENDIF
  103.  
  104. ;
  105. ; pascal short IUTextOrder(const void *aPtr, const void *bPtr, short aLen, short bLen, ScriptCode aScript, ScriptCode bScript, LangCode aLang, LangCode bLang)
  106. ;
  107.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  108.         Macro
  109.         _IUTextOrder
  110.             move.w              #$0022,-(sp)
  111.             dc.w                $A9ED
  112.         EndM
  113.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  114.         IMPORT_CFM_FUNCTION IUTextOrder
  115.     ENDIF
  116.  
  117. ;
  118. ; pascal short IULangOrder(LangCode language1, LangCode language2)
  119. ;
  120.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  121.         Macro
  122.         _IULangOrder
  123.             move.w              #$0020,-(sp)
  124.             dc.w                $A9ED
  125.         EndM
  126.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  127.         IMPORT_CFM_FUNCTION IULangOrder
  128.     ENDIF
  129.  
  130. ;
  131. ; pascal short IUScriptOrder(ScriptCode script1, ScriptCode script2)
  132. ;
  133.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  134.         Macro
  135.         _IUScriptOrder
  136.             move.w              #$001E,-(sp)
  137.             dc.w                $A9ED
  138.         EndM
  139.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  140.         IMPORT_CFM_FUNCTION IUScriptOrder
  141.     ENDIF
  142.  
  143. ;  The following are new names which are not exported by System 7 InterfaceLib for PowerPC.
  144. ;
  145. ; pascal short CompareText(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  146. ;
  147.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  148.         Macro
  149.         _CompareText
  150.             move.w              #$001A,-(sp)
  151.             dc.w                $A9ED
  152.         EndM
  153.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  154.         IMPORT_CFM_FUNCTION CompareText
  155.     ENDIF
  156.  
  157. ;
  158. ; pascal short IdenticalText(const void *aPtr, const void *bPtr, short aLen, short bLen, Handle itl2Handle)
  159. ;
  160.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  161.         Macro
  162.         _IdenticalText
  163.             move.w              #$001C,-(sp)
  164.             dc.w                $A9ED
  165.         EndM
  166.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  167.         IMPORT_CFM_FUNCTION IdenticalText
  168.     ENDIF
  169.  
  170. ;
  171. ; pascal short TextOrder(const void *aPtr, const void *bPtr, short aLen, short bLen, ScriptCode aScript, ScriptCode bScript, LangCode aLang, LangCode bLang)
  172. ;
  173.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  174.         Macro
  175.         _TextOrder
  176.             move.w              #$0022,-(sp)
  177.             dc.w                $A9ED
  178.         EndM
  179.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  180.         IMPORT_CFM_FUNCTION TextOrder
  181.     ENDIF
  182.  
  183. ;
  184. ; pascal short LanguageOrder(LangCode language1, LangCode language2)
  185. ;
  186.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  187.         Macro
  188.         _LanguageOrder
  189.             move.w              #$0020,-(sp)
  190.             dc.w                $A9ED
  191.         EndM
  192.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  193.         IMPORT_CFM_FUNCTION LanguageOrder
  194.     ENDIF
  195.  
  196.  
  197. ;   The following new function name IS exported by InterfaceLib and works on both 68k and
  198. ;   System 7 PowerPC.
  199.  
  200.  
  201. ;
  202. ; pascal short ScriptOrder(ScriptCode script1, ScriptCode script2)
  203. ;
  204.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  205.         Macro
  206.         _ScriptOrder
  207.             move.w              #$001E,-(sp)
  208.             dc.w                $A9ED
  209.         EndM
  210.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  211.         IMPORT_CFM_FUNCTION ScriptOrder
  212.     ENDIF
  213.  
  214.  
  215. ;   The following new function name IS exported by InterfaceLib and works on both 68k and
  216. ;   System 7 PowerPC.
  217.  
  218.  
  219. ;
  220. ; pascal short ReplaceText(Handle baseText, Handle substitutionText, Str15 key)
  221. ;
  222.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  223.         Macro
  224.         _ReplaceText
  225.             move.l              #$820CFFDC,-(sp)
  226.             dc.w                $A8B5
  227.         EndM
  228.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  229.         IMPORT_CFM_FUNCTION ReplaceText
  230.     ENDIF
  231.  
  232. ;
  233. ; pascal short IUMagString(const void *aPtr, const void *bPtr, short aLen, short bLen)
  234. ;
  235.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  236.         Macro
  237.         _IUMagString
  238.             move.w              #$000A,-(sp)
  239.             dc.w                $A9ED
  240.         EndM
  241.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  242.         IMPORT_CFM_FUNCTION IUMagString
  243.     ENDIF
  244.  
  245. ;
  246. ; pascal short IUMagIDString(const void *aPtr, const void *bPtr, short aLen, short bLen)
  247. ;
  248.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  249.         Macro
  250.         _IUMagIDString
  251.             move.w              #$000C,-(sp)
  252.             dc.w                $A9ED
  253.         EndM
  254.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  255.         IMPORT_CFM_FUNCTION IUMagIDString
  256.     ENDIF
  257.  
  258.     IF TARGET_CPU_68K THEN
  259. ;
  260. ; extern SInt32 RelString(BytePtr textPtrA, BytePtr textPtrB, UInt32 lengthAB)
  261. ;
  262.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  263.         ; parameters:
  264.         ;    textPtrA        => A0
  265.         ;    textPtrB        => A1
  266.         ;    lengthAB        => D0
  267.         ; returns:
  268.         ;    SInt32          <= D0
  269.         _RelString:    OPWORD    $A050
  270.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  271.         IMPORT_CFM_FUNCTION RelString
  272.     ENDIF
  273.  
  274. ;
  275. ; extern SInt32 RelStringMarks(BytePtr textPtrA, BytePtr textPtrB, UInt32 lengthAB)
  276. ;
  277.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  278.         ; parameters:
  279.         ;    textPtrA        => A0
  280.         ;    textPtrB        => A1
  281.         ;    lengthAB        => D0
  282.         ; returns:
  283.         ;    SInt32          <= D0
  284.         _RelStringMarks:    OPWORD    $A250
  285.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  286.         IMPORT_CFM_FUNCTION RelStringMarks
  287.     ENDIF
  288.  
  289. ;
  290. ; extern SInt32 RelStringCase(BytePtr textPtrA, BytePtr textPtrB, UInt32 lengthAB)
  291. ;
  292.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  293.         ; parameters:
  294.         ;    textPtrA        => A0
  295.         ;    textPtrB        => A1
  296.         ;    lengthAB        => D0
  297.         ; returns:
  298.         ;    SInt32          <= D0
  299.         _RelStringCase:    OPWORD    $A450
  300.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  301.         IMPORT_CFM_FUNCTION RelStringCase
  302.     ENDIF
  303.  
  304. ;
  305. ; extern SInt32 RelStringMarksCase(BytePtr textPtrA, BytePtr textPtrB, UInt32 lengthAB)
  306. ;
  307.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  308.         ; parameters:
  309.         ;    textPtrA        => A0
  310.         ;    textPtrB        => A1
  311.         ;    lengthAB        => D0
  312.         ; returns:
  313.         ;    SInt32          <= D0
  314.         _RelStringMarksCase:    OPWORD    $A650
  315.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  316.         IMPORT_CFM_FUNCTION RelStringMarksCase
  317.     ENDIF
  318.  
  319. ;
  320. ; extern UInt32 CmpString(BytePtr textPtrA, BytePtr textPtrB, UInt32 lengthAB)
  321. ;
  322.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  323.         ; parameters:
  324.         ;    textPtrA        => A0
  325.         ;    textPtrB        => A1
  326.         ;    lengthAB        => D0
  327.         ; returns:
  328.         ;    UInt32          <= D0
  329.         _CmpString:    OPWORD    $A03C
  330.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  331.         IMPORT_CFM_FUNCTION CmpString
  332.     ENDIF
  333.  
  334. ;
  335. ; extern UInt32 CmpStringMarks(BytePtr textPtrA, BytePtr textPtrB, UInt32 lengthAB)
  336. ;
  337.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  338.         ; parameters:
  339.         ;    textPtrA        => A0
  340.         ;    textPtrB        => A1
  341.         ;    lengthAB        => D0
  342.         ; returns:
  343.         ;    UInt32          <= D0
  344.         _CmpStringMarks:    OPWORD    $A23C
  345.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  346.         IMPORT_CFM_FUNCTION CmpStringMarks
  347.     ENDIF
  348.  
  349. ;
  350. ; extern UInt32 CmpStringCase(BytePtr textPtrA, BytePtr textPtrB, UInt32 lengthAB)
  351. ;
  352.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  353.         ; parameters:
  354.         ;    textPtrA        => A0
  355.         ;    textPtrB        => A1
  356.         ;    lengthAB        => D0
  357.         ; returns:
  358.         ;    UInt32          <= D0
  359.         _CmpStringCase:    OPWORD    $A43C
  360.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  361.         IMPORT_CFM_FUNCTION CmpStringCase
  362.     ENDIF
  363.  
  364. ;
  365. ; extern UInt32 CmpStringMarksCase(BytePtr textPtrA, BytePtr textPtrB, UInt32 lengthAB)
  366. ;
  367.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  368.         ; parameters:
  369.         ;    textPtrA        => A0
  370.         ;    textPtrB        => A1
  371.         ;    lengthAB        => D0
  372.         ; returns:
  373.         ;    UInt32          <= D0
  374.         _CmpStringMarksCase:    OPWORD    $A63C
  375.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  376.         IMPORT_CFM_FUNCTION CmpStringMarksCase
  377.     ENDIF
  378.  
  379.     ELSE
  380. ;
  381. ; pascal short RelString(ConstStr255Param str1, ConstStr255Param str2, Boolean caseSensitive, Boolean diacSensitive)
  382. ;
  383.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  384.         IMPORT_CFM_FUNCTION RelString
  385.     ENDIF
  386.  
  387. ;
  388. ; pascal Boolean EqualString(ConstStr255Param str1, ConstStr255Param str2, Boolean caseSensitive, Boolean diacSensitive)
  389. ;
  390.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  391.         IMPORT_CFM_FUNCTION EqualString
  392.     ENDIF
  393.  
  394.     ENDIF    ; TARGET_CPU_68K
  395.     ENDIF ; __STRINGCOMPARE__ 
  396.  
  397.